<%--***************************************
*
*支付宝
* 
***************************************--%>
<%@ page import="
	java.util.*,
	java.text.*,
	org.apache.commons.lang.StringUtils,
	com.probiz.estore.payment.alipay.AlipayService,
	com.probiz.estore.common.model.order.SalesOrder,
	com.probiz.estore.common.model.system.PaymentGateway,
	com.probiz.estore.common.helper.ConfigUtil"
	contentType="text/html; charset=UTF-8"%>
<%
	SalesOrder salesOrder = (SalesOrder) request.getAttribute("salesOrder");
	PaymentGateway paymentGateway = (PaymentGateway) request.getAttribute("paymentGateway");
	request.setAttribute("paymentGateway",paymentGateway);
	HashMap paramMap = paymentGateway.getConfigData();

	//-----------------------start: 账户信息------------------------------------------
	String partner ="";
	String key="";
	String seller_email="";
	if (paramMap != null) {
		partner = paramMap.get("partnerId").toString().trim(); 		//支付宝合作伙伴id (账户内提取) 
		key = paramMap.get("key").toString().trim(); 				//支付宝安全校验码(账户内提取)
		seller_email = paramMap.get("merchant").toString().trim(); 	//卖家支付宝帐户 "man1900@126.com";
	}
	String serviceType = paramMap.get("service").toString().trim();  //接口类型
	//-----------------------end:   账户信息------------------------------------------
	
	//-----------------------start: 配置信息------------------------------------------
	String sign_type = "MD5";
	String input_charset = "UTF-8";
	String show_url = ConfigUtil.getInstance().getStoreFrontSiteUrl()+ "/customer/csOrders.html?doAction=viewOrder&orderNo="+salesOrder.getOrderNo(); //订单商品展示页面
	String return_url = ConfigUtil.getInstance().getStoreFrontSiteUrl()+ "/system/payment/alipay_response.html"; 		//页面跳转同步通知处理页面文件
	String notify_url = ConfigUtil.getInstance().getStoreFrontSiteUrl()+ "/system/payment/alipay_response_notify.html"; //服务器异步通知处理页面文件
	
	//-----------------------end:   配置信息------------------------------------------

	//-----------------------start: 业务信息------------------------------------------
	String out_trade_no = salesOrder.getOrderNo(); //商户网站订单 
	String body = "商城订单:" + salesOrder.getOrderNo(); //商品描述，推荐格式：商品名称（订单编号：订单编号）
	String subject = "订单编号:" + salesOrder.getOrderNo(); //商品名称
	DecimalFormat df = new DecimalFormat("0.00");
	String price = df.format(salesOrder.getUnPaidAmount().doubleValue()); //要支付的订单总价
	String quantity = "1";
	String logistics_type = "EXPRESS";
	String logistics_fee = salesOrder.getShippingCost().toString();
	String logistics_payment = "SELLER_PAY";

	//扩展参数——买家收货信息（推荐作为必填）
	//该功能作用在于买家已经在商户网站的下单流程中填过一次收货信息，而不需要买家在支付宝的付款流程中再次填写收货信息。
	//若要使用该功能，请至少保证receive_name、receive_address有值
	String receive_name = StringUtils.defaultString(salesOrder.getOrderAddress().getFirstname()); //收货人姓名，如：张三
	String receive_address = StringUtils.defaultString(salesOrder.getOrderAddress().getRegionFullName()+" "+salesOrder.getOrderAddress().getAddress1()); //收货人地址，如：XX省XXX市XXX区XXX路XXX小区XXX栋XXX单元XXX号
	String receive_zip = StringUtils.defaultString(salesOrder.getOrderAddress().getPostalcode()); //收货人邮编，如：123456
	String receive_phone = StringUtils.defaultString(salesOrder.getOrderAddress().getPhoneNumber());; //收货人电话号码，如：0571-81234567
	String receive_mobile = ""; //收货人手机号码，如：13312341234

	//扩展参数——第二组物流方式
	//物流方式是三个为一组成组出现。若要使用，三个参数都需要填上数据；若不使用，三个参数都需要为空
	//有了第一组物流方式，才能有第二组物流方式，且不能与第一个物流方式中的物流类型相同，
	//即logistics_type="EXPRESS"，那么logistics_type_1就必须在剩下的两个值（POST、EMS）中选择
	String logistics_fee_1 = ""; //物流费用，即运费。
	String logistics_type_1 = ""; //物流类型，三个值可选：EXPRESS（快递）、POST（平邮）、EMS（EMS）
	String logistics_payment_1 = ""; //物流支付方式，两个值可选：SELLER_PAY（卖家承担运费）、BUYER_PAY（买家承担运费）

	//扩展参数——第三组物流方式
	//物流方式是三个为一组成组出现。若要使用，三个参数都需要填上数据；若不使用，三个参数都需要为空
	//有了第一组物流方式和第二组物流方式，才能有第三组物流方式，且不能与第一组物流方式和第二组物流方式中的物流类型相同，
	//即logistics_type="EXPRESS"、logistics_type_1="EMS"，那么logistics_type_2就只能选择"POST"
	String logistics_fee_2 = ""; //物流费用，即运费。
	String logistics_type_2 = ""; //物流类型，三个值可选：EXPRESS（快递）、POST（平邮）、EMS（EMS）
	String logistics_payment_2 = ""; //物流支付方式，两个值可选：SELLER_PAY（卖家承担运费）、BUYER_PAY（买家承担运费）

	//扩展功能参数——其他
	String buyer_email = ""; //默认买家支付宝账号
	String discount = ""; //折扣，是具体的金额，而不是百分比。若要使用打折，请使用负数，并保证小数点最多两位数

	/////////////////////////////////////////////////////////////////////////////////////////////////////
	//-----------------------end:   业务信息------------------------------------------

	////构造函数，生成请求URL
	String sHtmlText = AlipayService.BuildForm(serviceType,partner,
			seller_email, return_url, notify_url, show_url, out_trade_no, subject, body, price, logistics_fee,
			logistics_type, logistics_payment, quantity, receive_name, receive_address, receive_zip,
			receive_phone, receive_mobile, logistics_fee_1, logistics_type_1, logistics_payment_1,
			logistics_fee_2, logistics_type_2, logistics_payment_2, buyer_email, discount, input_charset, key,
			sign_type);
	
%>

<div style="display:none;">
	<%=sHtmlText%>
</div>

<%@ include file="./include/payOrderTips.jspf" %>

